Today's rapidly changing technology requires application users to migrate from one platform to another, such as Windows 7™ to Windows 8™, or changes to runtime environment, such as App-V™, every couple of years. For every instance of such migration, users have to validate each application to ensure compatibility of the application for the migrated platform. This process might need to be repeated for every major and/or minor new release of a given platform. As users demand new and improved features, the frequency of updating platforms increases, thereby also increasing the importance of the migration from one platform or version to another.
Such migration is critical for enterprise users running thousands of applications for any given project on any given platform. And each such application can be associated with many different algorithms. That is, verification of applications and their associated algorithms for any given platform can be very complex and time consuming. Traditionally, such migration and verification is implemented manually, costing the organization a significant number of man hours (or months or years) and cost.
While a number of current techniques can be used to perform an accurate analysis to detect compatibility of an application across different platforms, the current techniques often involve manual testing of hundreds of applications using diagnostic tools such as process monitoring and debuggers to discover any defects. A disadvantage for such a process is the specialized knowledge required by a person in-charge of the testing.
Another drawback with the current techniques is the occasional false positive showing that an application is not compatible with a platform, whereas in reality that application is indeed compatible. A reduction in the percentage of false positives is useful for application users, especially when migrating between platforms.